home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / tcl / tclm_1_0.lha / tclm-1.0 / mseq.BNF < prev    next >
Text File  |  1993-08-16  |  829b  |  47 lines

  1.   I can't quite remember proper BNF format but here's a try.
  2. Things in *'s are literals.
  3.   I'm not going to define numbers or filenames.  Guess.
  4.  
  5. mseq_file :== section+
  6. section :== *track* statement+
  7. statement :== labeled sequence | filename | command | comment
  8. labeled seuqence :== label sequence
  9. label :== name*:*
  10. sequence :== block | filename
  11. block :== *{* sequence+ *}*
  12. command :== *repeat* label | *repeat* label multiplier
  13. multiplier :== number
  14. comment :== *#* anything to end-of-line
  15.  
  16.   Essentially what you want is stuff like:
  17.  
  18. track
  19. # This is track 1
  20. pat1.mid
  21. pat2.mid
  22. A: {
  23.   pat3.mid
  24.   B: { # block B:
  25.     pat4.mid
  26.     pat5.mid
  27.   }
  28.   pat6.mid
  29.   repeat B: 3
  30. }
  31. pat7.mid
  32. pat8.mid # pattern 8
  33.  
  34. # This is track 2
  35. track
  36. pat1.mid
  37. pat2.mid
  38. A: {
  39.   pat3.mid
  40.   pat4.mid
  41.   B: pat5.mid
  42.   pat6.mid
  43.   repeat B: 6
  44. }
  45. pat7.mid
  46. repeat A:
  47.